package com.linkwechat.common.component;


import com.linkwechat.common.constant.RedisKeyPrefix;
import com.linkwechat.common.vo.qw.*;
import com.linkwechat.common.vo.user.UserLoginVO;

/**
 * 缓存相关
 */
public interface CacheService {

    void setSuiteTicketToCache(String suiteTicket);


    String getSuiteTicketFromCache();

    void setSuiteTokenToCache(SuiteTokenVO suiteToken);

    SuiteTokenVO getSuiteTokenFromCache();

    PreAuthCodeVO getPreAuthCodeFromCache();

    void setPreAuthCodeToCache(PreAuthCodeVO preAuthCode);


    public EnterprisesPermanentAuthVO getEnterprisesPermanentAuthToCache(String cordid);
    public void setEnterprisesPermanentAuthToCache(EnterprisesPermanentAuthVO vo);

    public void removeEnterprisesPermanentAuthToCache(String cordid);

    QYAccessTokenVO getQYWXAuthCorpAccessTokenFromCache(String authcordid);

    void setQYWXAuthCorpAccessTokenToCache(String authcordid,QYAccessTokenVO vo);


    QYWXAppJSAPITicketVO getQYWXAuthCorpJSAPITicketFromCache(String authcordid);

    void setQYWXAuthCorpJSAPITicketToCache(String authcordid, QYWXAppJSAPITicketVO vo);


     QYWXQYJSAPITicketVO getQYWXCorpJSAPITicketFromCache(String authcordid);

    void setQYWXCorpJSAPITicketToCache(String authcordid, QYWXQYJSAPITicketVO vo);

    ///////////////////////////////////////////////////////////////

    void setLoginAuthSuiteTicketToCache(String suiteTicket);


    String getLoginAuthSuiteTicketFromCache();

    void setLoginAuthSuiteTokenToCache(SuiteTokenVO suiteToken);

    SuiteTokenVO getLoginAuthSuiteTokenFromCache();


    ///////////////////////////////////////////////////////////
    //下面是自建应用的
    public void setAccessTokenToCache(AccessTokenVO suiteToken) ;

    public AccessTokenVO getAccessTokenFromCache();


    String userLoginCacheKey(String user_key);
    void setUserLoginToCache(UserLoginVO user);

    UserLoginVO getUserLoginFromCache(String user_key);

    void refreshUserLoginToCache(UserLoginVO user);

    void removeUserLoginFromCache(String user_key);

    public QYWXQYJSAPITicketVO getQYWXJSAPITicketFromCache();

    public void setQYWXJSAPITicketToCache(QYWXQYJSAPITicketVO vo);

    public void setContactAccessTokenToCache(String corpId,AccessTokenVO suiteToken) ;

    public AccessTokenVO getContactAccessTokenFromCache(String corpId) ;

}
